
"""
property属性就是负责把一个方法当做属性进行使用，这样做可以简化代码使用
"""

"""装饰器模式使用
class Person(object):

    def __init__(self):
        self.__age = 0

    # @property 表示把方法当做属性使用, 表示当获取属性时会执行下面修饰的方法
    @property
    def age(self):
        return self.__age

    # @方法名.setter 表示把方法当做属性使用,表示当设置属性时会执行下面修饰的方法
    @age.setter
    def age(self, age):
        self.__age = age

p = Person()
p.age = 10
print(p.age)
"""


"""类属性方式"""
class Person(object):

    def __init__(self):
        self.__age = 0

    def get_age(self):
        """当获取age属性的时候会执行该方法"""
        return self.__age

    def set_age(self, age):
        """当设置age属性的时候会执行该方法"""
        self.__age = age

    """
    第一个参数是获取属性时要执行的方法
    第二个参数是设置属性时要执行的方法
    """
    age = property(get_age, set_age)

p = Person()
p.age = 10
print(p.age)
